/* * Copyright 2001-2014 Aspose Pty Ltd. All Rights Reserved. * * This file is part of Aspose.Words. The source code in this file * is only intended as a supplement to the documentation, and is provided * "as is", without warranty of any kind, either expressed or implied. */ package asposefeatures.mailmerge.mailmergefromxmldatasource.java; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import com.aspose.words.*; /** * This sample demonstrates how to execute mail merge with data from an XML data source. The XML file is read into memory, * stored in a DOM and passed to a custom data source implementing IMailMergeDataSource. This returns each value from XML when * called by the mail merge engine. */ public class XMLMailMerge { public static void main(String[] args) throws Exception { String dataPath = "src/asposefeatures/mailmerge/mailmergefromxmldatasource/data/"; // Use DocumentBuilder from the javax.xml.parsers package and Document class from the org.w3c.dom package to read // the XML data file and store it in memory. DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); // Parse the XML data. org.w3c.dom.Document xmlData = db.parse(dataPath + "Customers.xml"); // Open a template document. Document doc = new Document(dataPath + "mergeDoc.doc"); // Note that this class also works with a single repeatable region (and any nested regions). // To merge multiple regions at the same time from a single XML data source, use the XmlMailMergeDataSet class. // e.g doc.getMailMerge().executeWithRegions(new XmlMailMergeDataSet(xmlData)); doc.getMailMerge().execute(new XmlMailMergeDataTable(xmlData, "customer")); // Save the output document. doc.save(dataPath + "AsposeMailMerge.doc"); System.out.println("Process Completed Successfully."); } } //ExEnd